The brokering of goods and services is a time-honored technique of facilitating commerce. In its many forms, such brokering shares a recognition that providers of goods and services are often unwilling or unable to undertake the effort needed to initiate, conduct, or consummate a transaction with one or more consumers. For example, a manufacturer of a good may prefer to focus on the manufacturing process, and may therefore contract with a broker, who may then be responsible for locating a purchaser of the manufactured good and for conducting and consummating the sale of the good with the purchaser. Of course, the broker typically receives a share of the purchase price or some other fee or payment for providing these brokering services. In this way, the manufacturer (or other provider) and the broker may concentrate on developing their respective areas of expertise.
In the computer, network, and software realm(s), brokers have adopted these general concepts for the delivery of goods and services, e.g., over the Internet. For example, brokers may provide a marketplace in which various providers may sell their respective goods and/or services. For example, a provider of a ‘real-world’ item such as a book (e.g., a publisher) may utilize a broker to sell copies of the book. Similarly, brokers may exist which facilitate sales of digital content (e.g., songs or movies) and/or sales of software applications, among many other items for sale.
Meanwhile, however, software has evolved from stand-alone, integrated, monolithic applications into discrete services which provide specific functionality (or which combine to provide desired functionality), often on an as-needed basis. Conceptually, virtually any software functionality may be provided as a service, e.g., over the Internet or other network. Moreover, different services, perhaps from different sources, may be combined or sold together, e.g., for providing aggregated functionality and/or for providing competitive bundling of services to entice users to make (additional) purchase(s).
In theory, the intersection of brokering and software services, then, is conceptually straight-forward. That is, software service providers (referred to herein as service providers) may be as desirous as any other provider to obtain the advantages of providing their (software) services through a broker. In some cases, such as when software is conceptually similar to discrete goods (as in the example(s) above of digital songs or movies), the implementation of brokering services is also straight-forward. Specifically, for example, a broker may obtain rights to sell the software in question, and may locate a customer for the software and otherwise conduct and consummate the sale.
In practice, however, many services are conventionally difficult or impossible to deliver as part of a brokered service delivery scenario, at least in any standard or widely-applicable manner. For example, there may be a software service provided by a municipality or other governmental entity to potential small business owners for initiating and registering a business license of some kind. These and other similar services may be complex, long-running process(es) which execute over the course of multiple days or longer, and which may be accessed by users over multiple channels (e.g., different user devices). In addition, such multi-step services may execute on back-end (e.g., legacy) applications of the service provider and may require multiple interactions/interfaces with the service provider and/or other stakeholders. Further, when services are combined or associated for delivery to a single user, associated integration or interaction of such services may be complicated by various technical and/or business considerations, particularly when the services to be combined are provided by different service providers (e.g., different enterprises having different back-end legacy systems).
Service delivery of brokered services includes the actual run-time, execution of the brokered services, and possibly related functions (e.g., payment collection). During service delivery, the service broker may act as a simple intermediary that provides a central point of access to the various back-end, executing services hosted by the service providers in question. Such a delivery model generally implies minimal requirements on the service broker, while placing a burden on the service providers to ensure interoperability of their respective services (with one another and with the user). Conversely, services may themselves be directly hosted by a service broker; however, it may be impractical or impossible for the service broker to adapt and execute all of the various services (and combinations thereof) that may be desired by various users. Moreover, such difficulties may be particularly acute when brokering the type of multi-step, multi-provider, long-running, complex services referenced above.
In short, no satisfactory solution exists for delivering brokered services in a practical manner that leverages the relative resources and areas of expertise of the involved parties. Consequently, service providers are less able to commercialize their services, service brokers are less capable of brokering such services, and consumers suffer a more-limited market for, and less access to, services that they may wish to use.